package com.tarena.charging.order.quartz;

import com.tarena.charging.order.controller.OrderController;
import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.context.ApplicationContext;

@Slf4j
public class MyFirstTestJob implements Job {
    /**
     * 调度器开始 触发器时间达到 执行job核心任务方法execute
     * @param context 调度器上下文 如果调度器对象是在spring 容器中,可以活动容器的环境数据
     * @throws JobExecutionException
     */
    @Override public void execute(JobExecutionContext context) throws JobExecutionException {
        //调度任务的环境中 传递了业务数据 可以从context拿到 包括身份信息 分组 包括data
        JobDataMap map = context.getJobDetail().getJobDataMap();
        String name = map.getString("name");
        log.info("当前定时任务开始打印,获取业务参数name:{}",name);
        //想要拿到 对应的容器的bean对象
        //ApplicationContext springContext = SpringContextAwareUtils.getContext();
        //拿到bean对象 获取orderController orderService repository mapper
        //OrderController bean = springContext.getBean(OrderController.class);
        OrderController bean = SpringContextAwareUtils.getBean("orderController", OrderController.class);
        log.info("当前拿到了一个容器bean对象:{}",bean.getClass().getName());

    }
}
